package demo1;

import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:lenovo
 * Date:2024-05-21
 * Time:15:10
 */

/*
定义 UserInfo 类，表示银行客户信息，一个客户最多可以拥有十个账户。
(1)该类有3个私有成员变量:类型为String的客户姓名name，类型为int的客户身份证号 pid;类型为Account[]的账户列表accounts。
(2)该类的唯一构造方法 UserInfo(String nm,int id)分别用参数初始化 name
    和 pid，并将accounts 初始化为空的 Account[]。
(3)定义以下成员方法:addAccount(Account acc)将一个账户加入 accounts列表;
    transfer(int i,int j,double amount)实现从 accounts 列表中的第i个账户向第j个账户转账 amount额度，
    若第i个或第j个账户不存在，则打印错误信息，转账过程调用Account类的deposit和 withdraw 方法完成。
 */
public class UserInfo {
    private String name;
    private int pid;
    private Account[] accounts;

    public UserInfo(String name, int pid) {
        this.name = name;
        this.pid = pid;
        this.accounts=new Account[10];//初始化为空
    }
    public void addAccount(Account acc){
        //将一个账户加入 accounts列表;
        for (int i = 0; i < accounts.length; i++) {
            if(accounts[i]==null){
                accounts[i]=acc;
                break;
            }
        }
    }
    public void transfer(int i,int j,double amount){
        if(i>=0&&i<accounts.length&&j>=0&&j<accounts.length){
            if(accounts[i]!=null&&accounts[j]!=null){
                accounts[i].withdraw(amount);
                accounts[j].deposit(amount);
            }else{
                System.out.println("指定用户不存在");
            }
        } else{
            System.out.println("索引范围超出范围");
        }
    }

    public void displayAccountBalances(){
        //显示账户余额
        System.out.println("账户余额:");
        for (Account account:accounts) {
            if(account!=null){
                System.out.println("账户："+account.getId()+",余额："+account.getBalance());
            }
        }
    }

   /* public static void main(String[] args) {
        UserInfo u=new UserInfo("小张",110);
    }*/
}
